package challenge.计挑模拟赛;

import java.util.Scanner;

public class C {
    static double[][] points;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        points = new double[n][2];
        for(int i = 0; i < n; i++){
            points[i][0] = sc.nextDouble();
            points[i][1] = sc.nextDouble();
        }
        int a, b;
        double maxD = -1;
        double d;
        for(int i = 0; i < n; i++){
            for(int j = i + 1; j < n; j++){
                d = Math.sqrt(Math.pow(points[i][0] - points[j][0], 2) + Math.pow(points[i][1] - points[j][1], 2));
                if(check(i, j)){
                    maxD = Math.max(maxD, d);
                }
            }
        }
        System.out.printf("%.3f", maxD);
    }
    static boolean check(int a, int b){
        double[] point = new double[]{(points[a][0] + points[b][0]) / 2, (points[a][1] + points[b][1]) / 2};
        double r = Math.sqrt(Math.pow(points[a][0] - points[b][0], 2) + Math.pow(points[a][1] - points[b][1], 2)) / 2;
        for(int i = 0; i < points.length; i++){
            if(i == a || i == b) continue;
            if(Math.sqrt(Math.sqrt(Math.pow(points[i][0] - point[0], 2) + Math.pow(points[i][1] - point[1], 2))) <= r){
                return false;
            }
        }
        return true;
    }
}
/*
二维空间中给定一组点的坐标，以任意两个点为直径绘制一个圆。
求可以绘制的最大圆，满足该圆不包含其他点，输出其直径。
说明，圆心O，半径r的圆包含某点P的条件是，r≥(O到P的距离)。

输入说明：第一行，点的数量，不超过200；
第二行开始为点二维坐标，每个点为一行，每个点的两个维度间以空格隔开，坐标值范围为[-10000.0,10000.0]。
输出说明：输出满足条件的圆的直径（保留小数点后3位有效数字，四舍五入）。
输入样例：4
0 0
1 1
3 0
0 0.5
输出样例：2.236

 */
